1. Field of the Invention
This invention generally relates to the field of data processing systems employing multiple memories and more specifically to multiprocessing systems employing a common memory for all of the processors and a private memory for one of the processors. The common memory and private memory have distinct memory spaces, and the invention allows the processor having access to the private memory to also be able to access memory locations in both the memory space for the common memory and the memory space for the private memory.
2. Description of the Prior Art
The reduction in the cost and size of processors used in electronic data processing systems over the last few years has given rise to a dramatic increase in the number of processors that are used in data processing systems. A number of data processing systems have been developed in which several processors are used to process user programs. In some of these systems, the different processors may be specially designed to execute certain classes of instructions, such as fixed or floating point instructions, matrix instructions, or instructions that operate on character string. In other systems, different processors may process the same classes of instructions; in such a system, the operation is enhanced by the plural processors processing a number of user programs more quickly. Furthermore, several other elements of data processing systems, such as control units that control many of the peripheral elements such as disk and tape storage systems and input/output control units, employ one or more processors.
Multiprocessor systems can be constructed with one common memory that is accessable by all of the processors. However, if the system requires a high rate of memory accesses, it can be slowed down by contentions for the memory. If there is substantial duplication among the processors of programs and data, which may be the case, for example, in some multiprocessor systems in which several processors process user programs, a single common memory may be desirable. Such a system may also include several interleaved memories to reduce delays due to contentions for memory.
Alternatively, it often is desirable to provide a private memory that is accessible by only one of the processors. This may be done if the processor has specialized functions other than, or in addition to, the functions of the other processors. For example, if the multiprocessor system employs a master processor to schedule and coordinate processing by a number of slave processors, only the master processor need have access to the programs and data that allow it to perform this function. Similarly, for processors that control disk or tape drives in a peripheral controller, a private memory may store data and programs that allow them to perform these operations. A common memory may also be provided to store data and programs that are used by a number of processors. This arrangement would reduce the number of accesses of the common memory, and can enhance system performance.
Problems arise, however, in multiprocessor systems having one memory common to the processors and one or more private memories for the various processors. In such a systems, each of the memories may have a distinct address "space", or set of addressable locations, and the system must be configured to be able to distinguish between addresses that are intended for the common memory and addresses that are intended for the private memories to ensure that the correct locations are accessed.
Furthermore, the processors that have access to a common memory as well as to a private memory must be provided with addresses which are usable by them in processing their programs. These addresses normally must be addresses in their private memory spaces, even when processing programs that require references to programs or data that are stored in the common memory. Such processors typically use the addresses of the private memory space when processing their programs, and, to be able to refer to information stored in the common memory, must be provided with addresses in the private memory space that they may use to refer to the actual locations in the common memory in order to process such programs.